package com.zyp.jobseeker.mapper;

import com.zyp.jobseeker.entity.Position;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

import java.util.List;
import java.util.Map;

/**
 * 岗位Mapper接口
 */
@Mapper
public interface PositionMapper {
    /**
     * 插入新岗位
     */
    int insertPosition(Position position);

    /**
     * 根据ID查询岗位
     */
    Position selectById(Long id);

    /**
     * 根据ID更新岗位信息
     */
    int updatePosition(Position position);

    /**
     * 根据企业ID查询岗位列表
     */
    List<Position> selectByEnterpriseId(@Param("enterpriseId") Long enterpriseId);

    /**
     * 查询岗位总数（根据企业ID）
     */
    int countByEnterpriseId(Long enterpriseId);


    /**
     * 搜索岗位
     */
    List<Position> searchPositions(@Param("keyword") String keyword);

    /**
     * 查询搜索结果总数
     */
    int countSearchPositions(String keyword);

    /**
     * 根据岗位ID查询企业ID
     */
    @Select("SELECT enterprise_id FROM position WHERE id = #{positionId}")
    Long selectEnterpriseIdByPositionId(@Param("positionId") Long positionId);

    /**
     * 废弃岗位
     */
    int deprecatePosition(Map<String, Long> id);
}
